package decorador;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.LinkedList;
import java.util.logging.Level;
import java.util.logging.Logger;

import modelos.ModeloProducto;

public class DecoradorListarProductos extends Decorador{

	private boolean asc;
	private boolean desc;

	@Override
	public void listar(){
	    lista = new LinkedList<String []>();
	    String tira="SELECT descripcion, (precio*total.raciones), total.raciones, codigo FROM  Producto, (SELECT sum(IngredientexProducto.racion) as raciones, IngredientexProducto.cod_pro AS cod FROM IngredientexProducto  GROUP BY IngredientexProducto.cod_pro) total WHERE total.cod=codigo AND estatus='A' ORDER BY(total.raciones,(precio*total.raciones)) ";
	    if(asc)
	        tira+= "ASC";
	    if(desc)
	        tira+= "DESC";
	    modelo.abrirConexion();
	    try{
	        Statement stam = modelo.getConexion().createStatement();
	        ResultSet rs = stam.executeQuery(tira);
	        while (rs.next()){
	            String [] s = {rs.getString(1), ""+rs.getFloat(2), ""+rs.getInt(3),rs.getString(4)};
	            lista.add(s);
	        }
	    } catch (SQLException ex) {
	        Logger.getLogger(ModeloProducto.class.getName()).log(Level.SEVERE, null, ex);
	    }
	}

	public boolean isAsc() {
		return asc;
	}

	public void setAsc(boolean asc) {
		this.asc = asc;
	}

	public boolean isDesc() {
		return desc;
	}

	public void setDesc(boolean desc) {
		this.desc = desc;
	}
	
}
